package Day014_Lambda表达式_Stream流.demo02_Stream流;

import java.util.ArrayList;
import java.util.List;

/**
 * @author zhangyan
 * @date 2020/5/5 10:53
 */
public class Test2_Stream流 {
    public static void main(String[] args) {
        //过滤姓张的元素
        //再从姓张元素中过滤长度为3的元素

        List<String> list = new ArrayList<>();
        list.add("张无忌");
        list.add("周芷若");
        list.add("赵敏");
        list.add("张三丰");
        list.add("张杰");

        //获取流             过滤姓张的元素                    过滤长度为3的                      打印输出结果
        list.stream()
                .filter(a -> a.startsWith("张"))
                .filter(a -> a.length() == 3)
                .forEach(a -> System.out.println(a));
        System.out.println(list);

        /*
        1.必须要搭建好函数模型,才可以执行
          函数模型:一定会要有终结的方法,没有终结的方法 这个函数模型是不会执行的
        2.Stream流的操作方式是流动操作的,每一个流都不会存储元素
        3.一个Stream流只能操作一次,不能重复使用
        4.Stream流不会改变数据源
        */
    }
}
